Portable data collection devices are widely used in manufacturing, service and package delivery industries to perform a variety of on-site data collection activities. Such portable data collection devices often include integrated dataform readers adapted to read bar code and/or matrix dataforms affixed to products, product packaging and/or containers in warehouses, retail stores, shipping terminals, etc. for inventory control, tracking, production control and expediting, quality assurance and other purposes. Various bar code dataform readers have been proposed for portable data collection devices including laser scanners and one dimensional (1D) charge coupled device (CCD) imaging assemblies, both of which are capable of reading 1D bar code dataforms, that is, bar codes consisting of a single row of alternating black or dark colored bars and white or light colored bars or spaces of varying widths. Both of these types of dataform readers are also capable of reading a "stacked" two dimensional (2D) bar code dataform such as PDF417, which has row indicator patterns utilized by the dataform reader for vertical synchronization.
A two dimensional (2D) charge coupled device (CCD) imaging based dataform reader has been proposed in U.S. application Ser. No. 08/544,618, filed Oct. 18, 1995 and entitled "Extended Working Range Dataform Reader Including Fuzzy Logic Image Control Circuitry". The 2D dataform reader disclosed in application Serial No. 08/544,618, which is assigned to the assignee of the present application and incorporated herein by reference, includes an imaging assembly having a two dimensional CCD array of photosensors. The imaging assembly is adapted to read 1D and 2D bar code dataforms (e.g., PDF417, Supercode, etc.) with and without vertical synchronization row indicator patterns as well as matrix dataforms (e.g., MaxiCode, Data Matrix, Code 1, etc.) which do not include vertical synchronization patterns. Photosensors or photodiodes of the photosensor array correspond to pixels constituting a captured image frame and the two terms will be interchangeably used throughout. Two dimensional and matrix dataforms are suitable for encoding greater quantities of data than 1D bar code dataforms.
The 2D dataform reader disclosed in application Ser. No. 08/544,618 utilizes an open loop feedback control system including fuzzy logic circuitry to determine proper exposure time and gain parameters for a camera assembly. The camera assembly includes an optic assembly for focusing reflected light from a target 1D, 2D or matrix dataform in a field of view of the optic assembly onto the 2D photosensor array. At the end of an exposure period, photosensor charges or voltage magnitudes are read out and converted to gray scale values. A magnitude of a photosensor's gray scale value is proportional to the intensity of reflected light incident on the photosensor over the exposure period, i.e., a photosensor receiving reflected light from a black portion of a target bar code dataform will have a lower voltage magnitude and a corresponding lower gray scale value than a photosensor receiving reflected light from a white portion of the target bar code dataform.
Cell extraction circuitry of the dataform reader analyzes the stored gray scale values associated with a captured image frame and generates binary cell values (0,1) for each pixel position. The result is a binary pattern which is representative of the pattern of dark and light bars of the original target dataform. Dataform reader decoding circuitry then decodes the cell extraction circuitry pattern of cell values to decode the encoded data in the target bar code dataform.
Two dimensional CCD imaging dataform readers operate to television or other interlaced video signal standards whereby image values for a single image frame are provided in the format of two successive interlaced fields of image values. Thus, for a single frame, a first field of the frame is generated by a readout of photosensor voltage magnitudes in every other horizontal line of photosensors in the 2D photosensor array (e.g., horizontal lines 1, 3, 5, 7, etc. of the photosensor array) at the end of a first exposure period. At the end of the next exposure period, a second field of the frame is generated by a readout of photosensor voltage magnitudes from photosensors in the remaining rows of photosensors (e.g., horizontal lines 2, 4, 6, 8 etc. of the photosensor array).
In a video image displayed for human viewing on a television screen, for example, movement of the image is expected and the human eye accommodates displacement of image portions from field to field and frame to frame. However, in imaging based dataform readers, movement or jittering of the dataform reader by an operator's hand during a dataform reading session will cause the location of the target dataform projected onto the 2D photosensor array to move. This is referred to as image displacement or offset between successive fields comprising an image frame. Such movement of the dataform image with respect to the photosensor array during a readout of successive fields will result in an inconsistency or lack of registration between the fields when the fields are interlaced to generate a representation of the captured frame. Such lack of registration may make it impossible for the decoding circuitry of the dataform to decode the pattern of binary cell values generated by the cell extraction circuitry from the gray scale values representing a captured frame stored in memory.
At present, dataform readers utilizing video-type imaging assembly configurations and 2D CCD photosensor arrays, cell extraction and decoding circuitry typically use only a single field to extract and decode an imaged dataform. The result is operation with only one-half of the resolution which the CCD imaging assembly is inherently capable of providing. Operation with half resolution obviously restricts operation to decoding of dataforms with less complexity and detail than could be decoded with full or frame-level resolution. Since the element density, that is, the number of black and white bars per unit area, of a 2D bar code dataform is much greater than the element density of a 1D bar code dataform, operation with half resolution is especially disadvantageous with respect to reading 2D bar code dataforms and matrix dataform, which also exhibit a high element density.
Objects of the present invention are, therefore, to provide a new and improved dataform reader having enhanced frame-level resolution while operating with image data subject to registration errors between image fields as a result of image displacement or offset between fields.
Other objects of the invention are to provide a dataform reader having improved decoding ability utilizing image data of a second image field to supplement decoding of a target dataform imaged in a first image field by one or more of:
(a) use of second field image data to decode portions of a dataform not satisfactorily decoded by use of the first field image data; PA1 (b) decoding of both first and second fields of image data and using decoded portions of second field image data to supplement dataform portions not satisfactorily decoded by use of the first field image data; PA1 (c) use of first and second field image data to determine the magnitude or direction, or both, of one or more disparity vectors representative of an image offset between data of the two fields, the disparity vector values being usable to correct offset errors during decoding of a dataform; and PA1 (d) use of disparity vector horizontal and vertical component values to enable combined use of image data of first and second fields, or actual combination of such image data into a registered frame of image data, for decoding a dataform. PA1 (a) select a reference area centered in a first image field; PA1 (b) select a template area centered in a second image field, the template area being smaller than the reference area by X pixels in width and Y pixels in height; and PA1 (c) select a matrix area of template pixel positions within the template area; PA1 d) determine the horizontal component, dx, of the disparity vector, d; and PA1 e) determine the vertical component, dy, of the disparity vector, d. PA1 a) determine feature values, FV.sub.m, for each pixel position in the matrix area as follows: PA1 b) determine feature values, FV.sub.r, for each pixel position in the reference area as follows: PA1 c) at each of the (X+1).times.(Y+1) trial matching positions at which the template area can be trial matched to the reference area, calculate a composite score, CS, for the trial match by multiplying each pixel position feature value from the matrix area by the corresponding matched pixel position feature value of the reference area and summing the multiplied feature values; PA1 d) for each horizontal trial matching position, X.sub.i, calculate a total composite score, TCS, by summing the composite scores, CS, for the corresponding column of Y+1 trial matching positions; PA1 e) the horizontal component, dx, of the disparity vector, d, is equal to the horizontal offset of the horizontal trial matching position having the highest positive total composite score, TCS. PA1 a) determine feature values, FV.sub.m, for each pixel position in the matrix area as follows: PA1 b) determine feature values, FV.sub.r, for each pixel position in the reference area as follows: PA1 c) at each of the (X+1).times.(Y+1) trial matching positions at which the template area can be trial matched to the reference area, calculate a composite score, CS, for the trial match by multiplying each pixel position feature value from the matrix area by the corresponding matched pixel position feature value of the reference area and summing the multiplied feature values; PA1 d) for each vertical trial matching position, Y.sub.i, calculate a total composite score, TCS, by summing the composite scores, CS, for the corresponding row of X+1 trial matching positions; PA1 e) the vertical component, dy, of the disparity vector, d, is equal to the vertical offset of the vertical trial matching position having the highest positive total composite score, TCS.